// // exports.AL_Framework_Update_Manager = void 0;
// // var $update = require("./AL_Framework_Update");
// // // var $httpClient = require("./HttpClient");
// // // var $testUpdateItem = require("./TestUpdateItem");
// // var s = (function () {
// //     function e() {
// //         // this.testUpdateItem = $testUpdateItem.TestUpdateItem;
// //         this.items = [];
// //         this.current = null;
// //         this._hotUpdateUrl = "";
// //         this._hotUpdateUrlVersion = "";
// //         this.is_skip_check_update = !0;
// //         this.assetsManagers = {};
// //         this.preVersions = {};
// //         this.remoteVersions = {};
// //         this.mainBundles = [];
// //     }
// //     e.Instance = function () {
// //         return this._instance || (this._instance = new e());
// //     };
// //     Object.defineProperty(e.prototype, "storagePath", {
// //         get: function () {
// //             return jsb.fileUtils.getWritablePath() + "caches/";
// //         },
// //         enumerable: !1,
// //         configurable: !0
// //     });
// //     Object.defineProperty(e.prototype, "hotUpdateUrl", {
// //         get: function () {
// //             console.log("当前热更新地址为:" + this._hotUpdateUrl);
// //             return this._hotUpdateUrl;
// //         },
// //         set: function (e) {
// //             this._hotUpdateUrl = e;
// //         },
// //         enumerable: !1,
// //         configurable: !0
// //     });
// //     Object.defineProperty(e.prototype, "hotUpdateUrlVersion", {
// //         get: function () {
// //             console.log("当前版本热更新地址为:" + this._hotUpdateUrlVersion);
// //             return this._hotUpdateUrlVersion;
// //         },
// //         set: function (e) {
// //             this._hotUpdateUrlVersion = e;
// //         },
// //         enumerable: !1,
// //         configurable: !0
// //     });
// //     e.prototype.rest_Assets_Manager = function (e) {
// //         if (void 0 === e) {
// //             e = $update.AL_Framework_Update.MAIN_PACK;
// //         }
// //         if (this.assetsManagers[e]) {
// //             console.log("rest_Assets_Manager : " + e);
// //             this.assetsManagers[e].reset();
// //         }
// //     };
// //     e.prototype.get_Assets_Manager = function (e) {
// //         var t = e.convert_Bundle(e.bundle);
// //         return this.assetsManagers[t];
// //     };
// //     Object.defineProperty(e.prototype, "isBrowser", {
// //         get: function () {
// //             return cc.sys.platform == cc.sys.WECHAT_GAME || cc.sys.isBrowser;
// //         },
// //         enumerable: !1,
// //         configurable: !0
// //     });
// //     e.prototype.is_Skip_Update_Platfrom = function () {

// //         return true;
// //         // return (
// //         //     this.isBrowser ||
// //         //     "wx" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "qq" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "tt" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "oppo" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "vivo" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "huawei" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     "xiaomi" == ailin_sdk_manager.getSysPlatformName() ||
// //         //     (cc.sys.isNative && cc.sys.os == cc.sys.OS_IOS)
// //         // );
// //     };
// //     e.prototype.is_Skip_Update = function (e) {
// //         // return this.is_Skip_Update_Platfrom() || (e.node && e.node.up_status == $update.AL_Framework_Update.Status.UP_TO_DATE)
// //         //     ? ((e.isUpdating = !1), !0)
// //         //     : (this.is_skip_check_update && (console.log("跳过热更新，直接使用本地资源代码"), (e.isUpdating = !1)),
// //         //       this.is_skip_check_update);

// //         return true;
// //     };
// //     e.prototype.dowonLoad = function (e) {
// //         this.is_Skip_Update(e)
// //             ? e.handler.chuli_jiazai_ziyuanbao(e)
// //             : ((this.current = this.getItem(e)),
// //               this.current
// //                   ? this.current.isUpdating
// //                       ? (console.log(e.bundle + " 正在更新中..."), this.current.handler.on_Show_Updating(this.current))
// //                       : (console.log(e.bundle + " 不在更新状态，进入更新..."), this._dowonLoad(e))
// //                   : (console.log(e.bundle + " 放入下载队列中..."), this.items.push(e), this._dowonLoad(e)));
// //     };
// //     e.prototype._dowonLoad = function (e) {
// //         var t = this;
// //         this.current = e;
// //         this.current.isUpdating = !0;
// //         this.load_Versions(this.current).then(function (o) {
// //             if (o) {
// //                 e.isUpdating = !1;
// //                 t.get_Status(e.bundle) == $update.AL_Framework_Update.Status.UP_TO_DATE
// //                     ? ("GameHome" == e.bundle && ailin_sdk_manager.gameEvent("120023", "Login 大厅版本最新，无需热更"),
// //                       console.log(e.bundle + " 已经是最新，直接进入..."),
// //                       e.handler.chuli_jiazai_ziyuanbao(e))
// //                     : (console.log(e.bundle + " 进入检测更新..."), e.checkUpdate());
// //             }
// //         });
// //     };
// //     e.prototype.getItem = function (e) {
// //         for (var t = 0; t < this.items.length; t++) {
// //             if (e.bundle == this.items[t].bundle) {
// //                 return e;
// //             }
// //         }
// //         return null;
// //     };
// //     e.prototype.check_Allow_Update = function (e, t) {
// //         var o = e.remoteMd5;
// //         var n = this.preVersions[e.updateName];
// //         return null == n || null == n
// //             ? (console.log("预处理版本未存在!!!!"), $update.AL_Framework_Update.Code.PRE_VERSIONS_NOT_FOUND)
// //             : (n.md5 == o
// //                   ? console.log(
// //                         e.bundle +
// //                             " 将要下载版本 md5 与远程版本 md5 相同，可以下载 version : " +
// //                             n.version +
// //                             " md5:" +
// //                             n.md5
// //                     )
// //                   : "hall" == e.bundle
// //                   ? (console.log(e.bundle + " 更新"),
// //                     this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK)
// //                         ? (console.log("更新" + e.bundle + "时，主包有更新，需要先更新主包"),
// //                           (t = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE))
// //                         : console.log("更新" + e.bundle + "时，主包无更新，直接更新进入"))
// //                   : this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK) || this.is_Md5_Change("hall")
// //                   ? (console.log(
// //                         "更新" +
// //                             e.bundle +
// //                             "时，主包与大厅有更新，下载 md5 :" +
// //                             o +
// //                             " 与预处理md5不一致，需要对主包先进行更新"
// //                     ),
// //                     (t = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE))
// //                   : console.log("更新" + e.bundle + "时，主包与大厅无更新，可直接下载更新！！"),
// //               t);
// //     };
// //     e.prototype.check_Main_Md5 = function (e, t) {
// //         console.log(e.bundle + " 无更新，检测主包md5是否变化，如果变更，需要提示玩家更新主包");
// //         if (this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK)) {
// //             console.log("进入" + e.bundle + "时，主包有更新，需要先更新主包");
// //             t = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE;
// //         }
// //         return t;
// //     };
// //     e.prototype.get_Status = function (e) {
// //         if (cc.sys.isBrowser || this.is_skip_check_update || this.is_Skip_Update_Platfrom()) {
// //             return $update.AL_Framework_Update.Status.UP_TO_DATE;
// //         }
// //         e = this.convert_Bundle(e);
// //         var t = this.getVersionInfo(e);
// //         return t
// //             ? "{}" == JSON.stringify(this.remoteVersions) ||
// //               (this.remoteVersions[e] && t.md5 == this.remoteVersions[e].md5)
// //                 ? $update.AL_Framework_Update.Status.UP_TO_DATE
// //                 : $update.AL_Framework_Update.Status.NEED_UPDATE
// //             : $update.AL_Framework_Update.Status.NEED_DOWNLOAD;
// //     };
// //     e.prototype.get_Hash = function (e) {
// //         if (!cc.sys.isBrowser && "wx" != ailin_sdk_manager.getSysPlatformName() && !this.is_Skip_Update_Platfrom()) {
// //             e = this.convert_Bundle(e);
// //             var t = this.getVersionInfo(e);
// //             return t && t.hash
// //                 ? (console.log("hash值： ", {
// //                       version: t.hash
// //                   }),
// //                   {
// //                       version: t.hash
// //                   })
// //                 : void 0;
// //         }
// //     };
// //     e.prototype.get_Hash_Inside = function (e) {
// //         if (!cc.sys.isBrowser && !this.is_Skip_Update_Platfrom()) {
// //             e = this.convert_Bundle(e);
// //             var t = this.get_Version_Info_Inside(e);
// //             return t && t.hash
// //                 ? (console.log("hash值： ", {
// //                       version: t.hash
// //                   }),
// //                   {
// //                       version: t.hash
// //                   })
// //                 : void 0;
// //         }
// //     };
// //     e.prototype.getVersion = function (e, t) {
// //         if (void 0 === t) {
// //             t = !0;
// //         }
// //         if (cc.sys.isBrowser || cc.sys.platform == cc.sys.WECHAT_GAME) {
// //             return "v1.0";
// //         }
// //         e = this.convert_Bundle(e);
// //         var o = this.getVersionInfo(e);
// //         return o
// //             ? t
// //                 ? "v" + o.version
// //                 : "v" + o.version + "(" + o.md5 + ")"
// //             : this.remoteVersions[e]
// //             ? t
// //                 ? "v" + this.remoteVersions[e]
// //                 : "v" + this.remoteVersions[e] + "(" + this.remoteVersions[e].md5 + ")"
// //             : "v1.0";
// //     };
// //     e.prototype.is_Md5_Change = function (e) {
// //         e = this.convert_Bundle(e);
// //         return !(
// //             !this.preVersions[e] ||
// //             !this.remoteVersions[e] ||
// //             this.preVersions[e].md5 == this.remoteVersions[e].md5
// //         );
// //     };
// //     e.prototype.getString = function (e) {
// //         var t = "" + this.storagePath + e;
// //         return jsb.fileUtils.isFileExist(t)
// //             ? jsb.fileUtils.getStringFromFile(t)
// //             : jsb.fileUtils.isFileExist(e)
// //             ? jsb.fileUtils.getStringFromFile(e)
// //             : void 0;
// //     };
// //     e.prototype.get_String_Inside = function (e) {
// //         var t = "" + $update.AL_Framework_Update.MANIFEST_ROOT + e + "_version.json";
// //         var o = "" + $update.AL_Framework_Update.MANIFEST_ROOT + e + "_project.json";
// //         var n = "" + this.storagePath + t;
// //         var a = "" + this.storagePath + o;
// //         var s = "" + this.storagePath + e;
// //         if (jsb.fileUtils.isFileExist(n)) {
// //             jsb.fileUtils.removeFile(n);
// //             console.log("删除成功");
// //         }
// //         if (jsb.fileUtils.isFileExist(a)) {
// //             jsb.fileUtils.removeFile(a);
// //             console.log("删除成功");
// //         }
// //         if (jsb.fileUtils.isDirectoryExist(s)) {
// //             jsb.fileUtils.removeDirectory(s);
// //             console.log("删除成功");
// //         }
// //         return jsb.fileUtils.isFileExist(t)
// //             ? (console.log("包内存在：" + t), jsb.fileUtils.getStringFromFile(t))
// //             : void 0;
// //     };
// //     e.prototype.get_Version_String = function (e) {
// //         e = this.convert_Bundle(e);
// //         var t = "" + $update.AL_Framework_Update.MANIFEST_ROOT + e + "_version.json";
// //         return this.getString(t);
// //     };
// //     e.prototype.get_Project_String = function (e) {
// //         e = this.convert_Bundle(e);
// //         var t = "" + $update.AL_Framework_Update.MANIFEST_ROOT + e + "_project.json";
// //         return this.getString(t);
// //     };
// //     e.prototype.getVersionInfo = function (e) {
// //         var t = this.get_Version_String(e);
// //         console.log("ailin====================4====" + t);
// //         if (t) {
// //             return JSON.parse(t);
// //         }
// //     };
// //     e.prototype.get_Version_Info_Inside = function (e) {
// //         var t = this.get_String_Inside(e);
// //         console.log("ailin====================4====" + t);
// //         if (t) {
// //             return JSON.parse(t);
// //         }
// //     };
// //     e.prototype.load_Versions = function (e) {
// //         var t = this;
// //         return new Promise(function (o) {
// //             o(!0)
// //             // cc.sys.isBrowser
// //             //     ? o(!0)
// //             //     : ((e.state = $update.AL_Framework_Update.State.DOWNLOADING_VERSION),
// //             //       e.handler.on_Show_Updating(e),
// //             //       t.readRemoteVersions(function (n, a) {
// //             //           if (a) {
// //             //               console.error(a);
// //             //               t.remoteVersions = {};
// //             //               e.code = $update.AL_Framework_Update.Code.PRE_VERSIONS_NOT_FOUND;
// //             //               e.handler.on_Pre_Version_Failed(e, null == t.get_Version_String(e.bundle));
// //             //               e.isUpdating = !1;
// //             //               console.log("加载" + e.bundle + "时，加载远程版本信息失败...");
// //             //               o(!1);
// //             //           } else {
// //             //               {
// //             //                   t.remoteVersions = JSON.parse(n);
// //             //                   var s = e.convert_Bundle(e.bundle);
// //             //                   if (
// //             //                       s.indexOf($update.AL_Framework_Update.GAME_HOME_PACK) >= 0 &&
// //             //                       t.get_Status(s) == $update.AL_Framework_Update.Status.UP_TO_DATE
// //             //                   ) {
// //             //                       console.log("主包已经是最新，写入远程的版本信息");
// //             //                       t.preVersions = JSON.parse(n);
// //             //                   }
// //             //                   console.log("加载" + e.bundle + "时，加载远程版本信息成功...");
// //             //                   o(!0);
// //             //               }
// //             //           }
// //             //       }));
// //         });
// //     };
// //     e.prototype.convert_Bundle = function (e) {
// //         return "resources" == e ? $update.AL_Framework_Update.MAIN_PACK : e;
// //     };
// //     e.prototype.readRemoteVersions = function (e) {
// //         // var t = new $httpClient.HttpPackage();
// //         // t.data.url =
// //         //     this.hotUpdateUrlVersion +
// //         //     "/" +
// //         //     $update.AL_Framework_Update.MANIFEST_ROOT +
// //         //     window.oppo_get_online_dataId +
// //         //     "versions.json";
// //         // console.log("httpPackage.data.url", t.data.url);
// //         // t.data.isAutoAttachCurrentTime = !0;
// //         // t.send(
// //         //     function (t) {
// //         //         e(t);
// //         //     },
// //         //     function (t) {
// //         //         console.log(t);
// //         //         e("", t);
// //         //     }
// //         // );
// //     };
// //     e.prototype.save_Pre_Versions = function () {
// //         // var e = this;
// //         // this.readRemoteVersions(function (t, o) {
// //         //     e.preVersions = o ? {} : JSON.parse(t);
// //         // });
// //     };
// //     e._instance = null;
// //     return e;
// // })();
// // exports.AL_Framework_Update_Manager = s;


// const $update = require("./AL_Framework_Update");
// // const $httpClient = require("./HttpClient");
// // const $testUpdateItem = require("./TestUpdateItem");

// /**
//  * 更新管理类
//  * 单例模式管理热更新逻辑
//  */
// class AL_Framework_Update_Manager {
//     constructor() {
//         // this.testUpdateItem = $testUpdateItem.TestUpdateItem;
//         this.items = [];
//         this.current = null;
//         this._hotUpdateUrl = "";
//         this._hotUpdateUrlVersion = "";
//         this.is_skip_check_update = true;
//         this.assetsManagers = {};
//         this.preVersions = {};
//         this.remoteVersions = {};
//         this.mainBundles = [];
//     }

//     /**
//      * 获取单例实例
//      * @returns {AL_Framework_Update_Manager}
//      */
//     static Instance() {
//         if (!this._instance) {
//             this._instance = new AL_Framework_Update_Manager();
//         }
//         return this._instance;
//     }

//     /**
//      * 获取存储路径
//      * @returns {string}
//      */
//     get storagePath() {
//         return jsb.fileUtils.getWritablePath() + "caches/";
//     }

//     /**
//      * 获取热更新地址
//      * @returns {string}
//      */
//     get hotUpdateUrl() {
//         console.log("当前热更新地址为:" + this._hotUpdateUrl);
//         return this._hotUpdateUrl;
//     }

//     /**
//      * 设置热更新地址
//      * @param {string} url
//      */
//     set hotUpdateUrl(url) {
//         this._hotUpdateUrl = url;
//     }

//     /**
//      * 获取版本热更新地址
//      * @returns {string}
//      */
//     get hotUpdateUrlVersion() {
//         console.log("当前版本热更新地址为:" + this._hotUpdateUrlVersion);
//         return this._hotUpdateUrlVersion;
//     }

//     /**
//      * 设置版本热更新地址
//      * @param {string} url
//      */
//     set hotUpdateUrlVersion(url) {
//         this._hotUpdateUrlVersion = url;
//     }

//     /**
//      * 重置资源管理器
//      * @param {string} bundleName
//      */
//     rest_Assets_Manager(bundleName = $update.AL_Framework_Update.MAIN_PACK) {
//         if (this.assetsManagers[bundleName]) {
//             console.log("rest_Assets_Manager : " + bundleName);
//             this.assetsManagers[bundleName].reset();
//         }
//     }

//     /**
//      * 获取资源管理器
//      * @param {Object} bundle
//      * @returns {Object}
//      */
//     get_Assets_Manager(bundle) {
//         const bundleName = this.convert_Bundle(bundle.bundle);
//         return this.assetsManagers[bundleName];
//     }

//     /**
//      * 是否为浏览器
//      * @returns {boolean}
//      */
//     get isBrowser() {
//         return cc.sys.platform === cc.sys.WECHAT_GAME || cc.sys.isBrowser;
//     }

//     /**
//      * 判断是否跳过更新平台
//      * @returns {boolean}
//      */
//     is_Skip_Update_Platfrom() {
//         return true;
//         // return (
//         //     this.isBrowser ||
//         //     ["wx", "qq", "tt", "oppo", "vivo", "huawei", "xiaomi"].includes(ailin_sdk_manager.getSysPlatformName()) ||
//         //     (cc.sys.isNative && cc.sys.os === cc.sys.OS_IOS)
//         // );
//     }

//     /**
//      * 判断是否跳过更新
//      * @param {Object} updateItem
//      * @returns {boolean}
//      */
//     is_Skip_Update(updateItem) {
//         return true;
//         // if (this.is_Skip_Update_Platfrom() || (updateItem.node && updateItem.node.up_status === $update.AL_Framework_Update.Status.UP_TO_DATE)) {
//         //     updateItem.isUpdating = false;
//         //     return true;
//         // } else if (this.is_skip_check_update) {
//         //     console.log("跳过热更新，直接使用本地资源代码");
//         //     updateItem.isUpdating = false;
//         //     return this.is_skip_check_update;
//         // }
//         // return false;
//     }

//     /**
//      * 下载更新
//      * @param {Object} updateItem
//      */
//     dowonLoad(updateItem) {
//         if (this.is_Skip_Update(updateItem)) {
//             updateItem.handler.chuli_jiazai_ziyuanbao(updateItem);
//         } else {
//             this.current = this.getItem(updateItem);
//             if (this.current) {
//                 if (this.current.isUpdating) {
//                     console.log(updateItem.bundle + " 正在更新中...");
//                     this.current.handler.on_Show_Updating(this.current);
//                 } else {
//                     console.log(updateItem.bundle + " 不在更新状态，进入更新...");
//                     this._dowonLoad(updateItem);
//                 }
//             } else {
//                 console.log(updateItem.bundle + " 放入下载队列中...");
//                 this.items.push(updateItem);
//                 this._dowonLoad(updateItem);
//             }
//         }
//     }

//     /**
//      * 内部下载更新
//      * @param {Object} updateItem
//      */
//     _dowonLoad(updateItem) {
//         this.current = updateItem;
//         this.current.isUpdating = true;
//         this.load_Versions(this.current).then(success => {
//             if (success) {
//                 updateItem.isUpdating = false;
//                 if (this.get_Status(updateItem.bundle) === $update.AL_Framework_Update.Status.UP_TO_DATE) {
//                     console.log(updateItem.bundle + " 已经是最新，直接进入...");
//                     updateItem.handler.chuli_jiazai_ziyuanbao(updateItem);
//                 } else {
//                     console.log(updateItem.bundle + " 进入检测更新...");
//                     updateItem.checkUpdate();
//                 }
//             }
//         });
//     }

//     /**
//      * 获取更新项
//      * @param {Object} updateItem
//      * @returns {Object}
//      */
//     getItem(updateItem) {
//         for (let i = 0; i < this.items.length; i++) {
//             if (updateItem.bundle === this.items[i].bundle) {
//                 return updateItem;
//             }
//         }
//         return null;
//     }

//     /**
//      * 检查是否允许更新
//      * @param {Object} updateItem
//      * @param {number} code
//      * @returns {number}
//      */
//     check_Allow_Update(updateItem, code) {
//         const remoteMd5 = updateItem.remoteMd5;
//         const preVersion = this.preVersions[updateItem.updateName];
//         if (!preVersion) {
//             console.log("预处理版本未存在!!!!");
//             return $update.AL_Framework_Update.Code.PRE_VERSIONS_NOT_FOUND;
//         }
//         if (preVersion.md5 === remoteMd5) {
//             console.log(`${updateItem.bundle} 将要下载版本 md5 与远程版本 md5 相同，可以下载 version : ${preVersion.version} md5: ${preVersion.md5}`);
//         } else if (updateItem.bundle === "hall") {
//             console.log(`${updateItem.bundle} 更新`);
//             if (this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK)) {
//                 console.log(`更新${updateItem.bundle}时，主包有更新，需要先更新主包`);
//                 code = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE;
//             } else {
//                 console.log(`更新${updateItem.bundle}时，主包无更新，直接更新进入`);
//             }
//         } else if (this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK) || this.is_Md5_Change("hall")) {
//             console.log(`更新${updateItem.bundle}时，主包与大厅有更新，下载 md5 :${remoteMd5} 与预处理md5不一致，需要对主包先进行更新`);
//             code = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE;
//         } else {
//             console.log(`更新${updateItem.bundle}时，主包与大厅无更新，可直接下载更新！！`);
//         }
//         return code;
//     }

//     /**
//      * 检查主包md5
//      * @param {Object} updateItem
//      * @param {number} code
//      * @returns {number}
//      */
//     check_Main_Md5(updateItem, code) {
//         console.log(`${updateItem.bundle} 无更新，检测主包md5是否变化，如果变更，需要提示玩家更新主包`);
//         if (this.is_Md5_Change($update.AL_Framework_Update.MAIN_PACK)) {
//             console.log(`进入${updateItem.bundle}时，主包有更新，需要先更新主包`);
//             code = $update.AL_Framework_Update.Code.MAIN_PACK_NEED_UPDATE;
//         }
//         return code;
//     }

//     /**
//      * 获取更新状态
//      * @param {string} bundleName
//      * @returns {number}
//      */
//     get_Status(bundleName) {
//         return $update.AL_Framework_Update.Status.UP_TO_DATE;
        
//         // if (cc.sys.isBrowser || this.is_skip_check_update || this.is_Skip_Update_Platfrom()) {
//         //     return $update.AL_Framework_Update.Status.UP_TO_DATE;
//         // }
//         // const bundle = this.convert_Bundle(bundleName);
//         // const versionInfo = this.getVersionInfo(bundle);
//         // if (versionInfo) {
//         //     if ("{}" === JSON.stringify(this.remoteVersions) || (this.remoteVersions[bundle] && versionInfo.md5 === this.remoteVersions[bundle].md5)) {
//         //         return $update.AL_Framework_Update.Status.UP_TO_DATE;
//         //     }
//         //     return $update.AL_Framework_Update.Status.NEED_UPDATE;
//         // }
//         // return $update.AL_Framework_Update.Status.NEED_DOWNLOAD;
//     }

//     /**
//      * 获取hash值
//      * @param {string} bundleName
//      * @returns {Object}
//      */
//     get_Hash(bundleName) {
//         if (!cc.sys.isBrowser && ailin_sdk_manager.getSysPlatformName() !== "wx" && !this.is_Skip_Update_Platfrom()) {
//             const bundle = this.convert_Bundle(bundleName);
//             const versionInfo = this.getVersionInfo(bundle);
//             if (versionInfo && versionInfo.hash) {
//                 console.log("hash值： ", { version: versionInfo.hash });
//                 return { version: versionInfo.hash };
//             }
//         }
//     }

//     /**
//      * 获取内部hash值
//      * @param {string} bundleName
//      * @returns {Object}
//      */
//     get_Hash_Inside(bundleName) {
//         if (!cc.sys.isBrowser && !this.is_Skip_Update_Platfrom()) {
//             const bundle = this.convert_Bundle(bundleName);
//             const versionInfo = this.get_Version_Info_Inside(bundle);
//             if (versionInfo && versionInfo.hash) {
//                 console.log("hash值： ", { version: versionInfo.hash });
//                 return { version: versionInfo.hash };
//             }
//         }
//     }

//     /**
//      * 获取版本号
//      * @param {string} bundleName
//      * @param {boolean} [simple=true]
//      * @returns {string}
//      */
//     getVersion(bundleName, simple = true) {
//         if (cc.sys.isBrowser || cc.sys.platform === cc.sys.WECHAT_GAME) {
//             return "v1.0";
//         }
//         const bundle = this.convert_Bundle(bundleName);
//         const versionInfo = this.getVersionInfo(bundle);
//         if (versionInfo) {
//             return simple ? `v${versionInfo.version}` : `v${versionInfo.version}(${versionInfo.md5})`;
//         }
//         if (this.remoteVersions[bundle]) {
//             return simple ? `v${this.remoteVersions[bundle]}` : `v${this.remoteVersions[bundle]}(${this.remoteVersions[bundle].md5})`;
//         }
//         return "v1.0";
//     }

//     /**
//      * 判断md5是否变化
//      * @param {string} bundleName
//      * @returns {boolean}
//      */
//     is_Md5_Change(bundleName) {
//         const bundle = this.convert_Bundle(bundleName);
//         return !(this.preVersions[bundle] && this.remoteVersions[bundle] && this.preVersions[bundle].md5 === this.remoteVersions[bundle].md5);
//     }

//     /**
//      * 获取文件字符串
//      * @param {string} filePath
//      * @returns {string|undefined}
//      */
//     getString(filePath) {
//         const fullPath = `${this.storagePath}${filePath}`;
//         if (jsb.fileUtils.isFileExist(fullPath)) {
//             return jsb.fileUtils.getStringFromFile(fullPath);
//         }
//         if (jsb.fileUtils.isFileExist(filePath)) {
//             return jsb.fileUtils.getStringFromFile(filePath);
//         }
//     }

//     /**
//      * 获取内部文件字符串
//      * @param {string} bundleName
//      * @returns {string|undefined}
//      */
//     get_String_Inside(bundleName) {
//         const versionPath = `${$update.AL_Framework_Update.MANIFEST_ROOT}${bundleName}_version.json`;
//         const projectPath = `${$update.AL_Framework_Update.MANIFEST_ROOT}${bundleName}_project.json`;
//         const fullVersionPath = `${this.storagePath}${versionPath}`;
//         const fullProjectPath = `${this.storagePath}${projectPath}`;
//         const fullBundlePath = `${this.storagePath}${bundleName}`;

//         if (jsb.fileUtils.isFileExist(fullVersionPath)) {
//             jsb.fileUtils.removeFile(fullVersionPath);
//             console.log("删除成功");
//         }
//         if (jsb.fileUtils.isFileExist(fullProjectPath)) {
//             jsb.fileUtils.removeFile(fullProjectPath);
//             console.log("删除成功");
//         }
//         if (jsb.fileUtils.isDirectoryExist(fullBundlePath)) {
//             jsb.fileUtils.removeDirectory(fullBundlePath);
//             console.log("删除成功");
//         }
//         if (jsb.fileUtils.isFileExist(versionPath)) {
//             console.log("包内存在：" + versionPath);
//             return jsb.fileUtils.getStringFromFile(versionPath);
//         }
//     }

//     /**
//      * 获取版本文件字符串
//      * @param {string} bundleName
//      * @returns {string|undefined}
//      */
//     get_Version_String(bundleName) {
//         const versionPath = `${$update.AL_Framework_Update.MANIFEST_ROOT}${this.convert_Bundle(bundleName)}_version.json`;
//         return this.getString(versionPath);
//     }

//     /**
//      * 获取项目文件字符串
//      * @param {string} bundleName
//      * @returns {string|undefined}
//      */
//     get_Project_String(bundleName) {
//         const projectPath = `${$update.AL_Framework_Update.MANIFEST_ROOT}${this.convert_Bundle(bundleName)}_project.json`;
//         return this.getString(projectPath);
//     }

//     /**
//      * 获取版本信息
//      * @param {string} bundleName
//      * @returns {Object}
//      */
//     getVersionInfo(bundleName) {
//         const versionString = this.get_Version_String(bundleName);
//         console.log("ailin====================4====" + versionString);
//         if (versionString) {
//             return JSON.parse(versionString);
//         }
//     }

//     /**
//      * 获取内部版本信息
//      * @param {string} bundleName
//      * @returns {Object}
//      */
//     get_Version_Info_Inside(bundleName) {
//         const versionString = this.get_String_Inside(bundleName);
//         console.log("ailin====================4====" + versionString);
//         if (versionString) {
//             return JSON.parse(versionString);
//         }
//     }

//     /**
//      * 加载版本信息
//      * @param {Object} updateItem
//      * @returns {Promise<boolean>}
//      */
//     load_Versions(updateItem) {
//         return new Promise(resolve => {
//             resolve(true);
//             // if (cc.sys.isBrowser) {
//             //     resolve(true);
//             // } else {
//             //     updateItem.state = $update.AL_Framework_Update.State.DOWNLOADING_VERSION;
//             //     updateItem.handler.on_Show_Updating(updateItem);
//             //     this.readRemoteVersions((data, error) => {
//             //         if (error) {
//             //             console.error(error);
//             //             this.remoteVersions = {};
//             //             updateItem.code = $update.AL_Framework_Update.Code.PRE_VERSIONS_NOT_FOUND;
//             //             updateItem.handler.on_Pre_Version_Failed(updateItem, !this.get_Version_String(updateItem.bundle));
//             //             updateItem.isUpdating = false;
//             //             console.log(`加载${updateItem.bundle}时，加载远程版本信息失败...`);
//             //             resolve(false);
//             //         } else {
//             //             this.remoteVersions = JSON.parse(data);
//             //             const bundle = updateItem.convert_Bundle(updateItem.bundle);
//             //             if (bundle.indexOf($update.AL_Framework_Update.GAME_HOME_PACK) >= 0 && this.get_Status(bundle) === $update.AL_Framework_Update.Status.UP_TO_DATE) {
//             //                 console.log("主包已经是最新，写入远程的版本信息");
//             //                 this.preVersions = JSON.parse(data);
//             //             }
//             //             console.log(`加载${updateItem.bundle}时，加载远程版本信息成功...`);
//             //             resolve(true);
//             //         }
//             //     });
//             // }
//         });
//     }

//     /**
//      * 转换Bundle名称
//      * @param {string} bundleName
//      * @returns {string}
//      */
//     convert_Bundle(bundleName) {
//         return bundleName === "resources" ? $update.AL_Framework_Update.MAIN_PACK : bundleName;
//     }

//     /**
//      * 读取远程版本信息
//      * @param {function} callback
//      */
//     readRemoteVersions(callback) {
//         // const httpClient = new $httpClient.HttpPackage();
//         // httpClient.data.url =
//         //     `${this.hotUpdateUrlVersion}/${$update.AL_Framework_Update.MANIFEST_ROOT}${window.oppo_get_online_dataId}versions.json`;
//         // console.log("httpPackage.data.url", httpClient.data.url);
//         // httpClient.data.isAutoAttachCurrentTime = true;
//         // httpClient.send(
//         //     data => callback(data),
//         //     error => {
//         //         console.log(error);
//         //         callback("", error);
//         //     }
//         // );
//     }

//     /**
//      * 保存预版本信息
//      */
//     save_Pre_Versions() {
//         // this.readRemoteVersions((data, error) => {
//         //     this.preVersions = error ? {} : JSON.parse(data);
//         // });
//     }
// }

// AL_Framework_Update_Manager._instance = null;

// exports.AL_Framework_Update_Manager = AL_Framework_Update_Manager;
